package arraylist;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Card{
    public  String rank;//点数
   public String suit;//花色

    public Card(String rank, String suit) {
        this.rank = rank;
        this.suit = suit;
    }
//方打印打印牌的内容
    @Override
    public String toString() {
        return
                "(" + rank  + suit +
                ')';
    }
}
public class Test2 {

    public static ArrayList<Card> createCards() {
        //先创建一个一副扑克牌
        ArrayList<Card> cards = new ArrayList<>();
        String[] suits = {"♠", "♥", "♦", "♣"};
        for (String suit : suits) {
            for (int i = 1; i <= 13; i++) {
                Card card = new Card("" + i, suit);
                cards.add(card);
            }
        }
        return cards;
    }
    public static void main(String[] args) {
        ArrayList<Card> cards = createCards();
        System.out.println(cards);

        //标准库有一个现成的方法，shuffke，就可以完成洗牌，打乱ArrayList中的顺序
        //Collections就是一个特殊类，包含了很多有用的方法，其中有一个shuffle方法，可以对List集合进行洗牌。
        //如果某个类，里面都是静态方法，这样的类就称为工具类，可以直接通过类名来调用。
        Collections.shuffle(cards);
        System.out.println("洗牌后：" + cards);
        //发牌，假设三个玩家，每个玩家发5张牌；
        //使用三个ArrayLiat，表示三个玩家
//        ArrayList<Card> player1 = new ArrayList<>();
//        ArrayList<Card> player2 = new ArrayList<>();
//        ArrayList<Card> player3 = new ArrayList<>();
        //也可以通过类似”“二维数组”的方式，构造ArrayList。
        ArrayList<ArrayList<Card>> players = new ArrayList<>();
        //先创建三个ArrayList，然后循环发牌
        for (int i = 0; i < 3; i++) {
            players.add(new ArrayList<>());
        }
        //一个人一个人轮着发
        for (int round = 0; round < 5; round++) {
            for (int j = 0; j < 3; j++) {
                //取牌堆第一张
                    Card card=cards.remove(0);
                    //放到对应玩家中
                ArrayList<Card> player = players.get(j);
                player.add(card);
            }
        }
        //打印每个玩家的的牌
         for (int i=0;i<3;i++){
             System.out.println("玩家"+(i+1)+"的牌：");
             List<Card> player= players.get(i);
             System.out.println(player);
      }
    }
}
